User-driven spectator channel for live game play in multi-player games

ABSTRACT

A multi-user system hosts a game session over a communication network. The game session includes a plurality of media streams that show one or more views of live game play for the game session. The multi-user system further assigns a spectator value to each media stream, updates one or more spectator values based on user inputs received during the game session, selects, for one or more time periods of the game session, one media stream to broadcast based on the spectator value assigned to the one media stream for the one or more time periods, and broadcasts the one media stream over the communication network.

TECHNICAL FIELD

The present disclosure generally relates to multi-user networkplatforms, and more particularly to spectators viewing live-gameplay fora game session.

BACKGROUND

Advances in network connectivity, speed, convenience, and the like,support an ever increasing community of online consumers who spectateand/or participate in live online game play, which is often hosted by amulti-user network platform. In fact, within the community of theseonline consumers, highly skilled players can achieve celebrity statusand attract a large following of fans. Similarly, various multiplayergames have also seen dramatic increases in popularity and attract anever increasing number of participants and spectators alike.

Parallels can be drawn between traditional consumers of physicalreal-world activities or sports, such as card games, board games,football, basketball, baseball, and the like, and the online consumersfor multiplayer or multi-user games. For example, traditional consumersand the online consumers often watch a particular player, team, sport,or game, and access various media outlets to watch highlights, followplayers, and the like. Industries and businesses that provide contentfor physical real-world activities, such as live-game play, usesophisticated hardware such as cameras, wires, cables, suspensions,etc., to capture different views of the live-game play in order toprovide informative and immersive viewing experiences. However, creatingsimilar viewing experiences for online consumers of multiplayer ormulti-user games presents new challenges due, in part, to an underlyinginherent virtual or online nature of such multiplayer or multi-usergames. As the community of online consumers continues to grow, so toodoes a demand to improve the online consumer's viewing experience.

SUMMARY

The following summary describes one or more embodiments of thisdisclosure. This summary is provided to discuss exemplary embodimentsand is not intended to limit any aspects of the subject disclosure.Moreover, while the embodiments described in this summary represent theperspective of a multi-user system or platform, however, it is to beunderstood other methods, devices, non-transitory computer-readablestorage media, and the like may be readily employed to perform the sameor substantially similar operations described herein.

In one exemplary embodiment, the multi-user system includes one or morenetwork interfaces to communicate with a communication network, aprocessor coupled to the network interfaces and adapted to execute oneor more processes, and a memory configured to store a process executableby the processor. The process, when executed, is operable to host a gamesession that is accessible over the communication network, define aspectator attribute for each media stream of a plurality of mediastreams associated with the game session. Notably, each media streamcorresponds to a view of live game play for the game session. Theprocess is further operable to update a current spectator valueassociated with each spectator attribute based on user inputs receivedin a time period of the live game play and designate one media stream asa spectator stream for the time period of the live game play based onits current spectator value. The process is also operable to integratethe spectator stream for each time period into a spectator channel ofthe live game play for the game session and broadcast the spectatorchannel over the communication network. Notably, the spectator channelprovides one or more views of the live game play for the game sessionbased on the one media stream designated as the spectator stream for thetime period of live game play

In some aspects of the above exemplary embodiment, the spectatorattribute includes one or more of a number of users viewing the eachmedia stream, a change or trend in the number of users viewing the eachmedia stream, a number of users that follow a player associated with theeach media stream, a change or trend in the number of users that followthe player, a number of points awarded to the player, a change or trendin the number of points awarded to the player, or a proximity betweenthe player and potential point awards.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments herein may be better understood by referring to thefollowing description in conjunction with the accompanying drawings inwhich like reference numerals indicate identical or functionally similarelements. Understanding that these drawings depict only exemplaryembodiments of the disclosure and are not therefore to be considered tobe limiting of its scope, the principles herein are described andexplained with additional specificity and detail through the use of theaccompanying drawings in which:

FIG. 1 illustrates a schematic diagram of an example communicationnetwork;

FIG. 2 illustrates a block diagram of an example network device/node;

FIG. 3 illustrates a block diagram of a stream integration engineemployed by a multi-user platform, showing media streams havingrespective spectator attributes;

FIG. 4 illustrates a block diagram of the stream integration engineshown in FIG. 3, further showing media streams organized according toplayer attributes;

FIG. 5 illustrates a graph of viewership for respective media streamsduring live game play in the game session;

FIG. 6 illustrates a graph of selected portions of the media streamsshown in FIG. 5;

FIG. 7 illustrates a graph of a number of votes received for respectivemedia streams during live game play in the game session;

FIG. 8 illustrates a graph of portions of the media streams shown inFIG. 7, further showing the portions selected for broadcast based on thenumber of votes received for time periods of the game session;

FIG. 9A illustrates a graph of a spectator channel that broadcastsportions of the media streams for time periods of the game session;

FIG. 9B illustrates a block diagram of a priority ranking used to selectthe portions of the media streams shown in FIG. 9A.

FIG. 10 illustrates a graphical view of live game play for a gamesession, showing different viewing angles for corresponding mediastreams;

FIG. 11 illustrates a graphical view of the live game play shown in FIG.10, showing display content for a media stream;

FIG. 12 illustrates a graphical view of the live game play shown in FIG.11, further showing channel options to set a spectator channel to viewmedia streams for a particular player;

FIG. 13 illustrates a graphical view of the live game play shown in FIG.11, further showing channel options to set the spectator channel to viewtrending media streams;

FIG. 14 illustrates a graphical view of the live game play shown in FIG.11, further showing display content for a different media stream; and

FIG. 15 illustrates an example simplified procedure for integratingmedia streams of live game play in a game session into a spectatorchannel.

DETAILED DESCRIPTION

Various embodiments of the disclosure are discussed in detail below.While specific implementations are discussed, it should be understoodthat this is done for illustration purposes only. A person skilled inthe relevant art will recognize that other components and configurationsmay be used without parting from the spirit and scope of the disclosure.

As used herein, the term “user” refers to a user of an electronicdevice(s) and can include participants or players as well asnon-participants or spectators. Actions performed by a user in thecontext of computer software shall be considered to be actions taken bya user to provide an input to the electronic device(s) to cause theelectronic device to perform the steps embodied in computer software.The terms “stream” or “media stream” are synonymous and generally referto data or content associated with an online game or an online gamesession.

As discussed in greater detail below, the subject disclosure relates toa user-driven spectator channel that shows live game play formulti-player games. The user-driven spectator channel improves an onlineconsumer's viewing experience of live online game play and particularlyintegrates and/or switches between multiple media streams correspondingto live game play during a game session based on user inputs orfeedback. For example, a multi-user platform or system can host a gamesession over a communication network and receive user inputs thatcorrespond to interest, popularity, or preference in one or more mediastreams that show live game play for the game session. The multi-userplatform may include a stream integration engine or module thatprioritizes and designates portions of the media streams to broadcast ina given time period based on the user inputs for the given time period(or leading up to the given time period). The multi-user platform and/orthe stream integration engine can further compile or integrate thedesignated portions of the media streams into a spectator channel andbroadcast the spectator channel to users over the network. In thisfashion, the spectator channel shows different views and/or perspectivesof the live game play in the game session based on current user feedbackfor live game play.

Referring to the figures, FIG. 1 illustrates a schematic diagram 100 ofan example communication network 105 (e.g., the Internet). Communicationnetwork 105 is shown for purposes of illustration and represents varioustypes of networks, ranging from local area networks (LANs) to wide areanetworks (WANs). LANs typically connect the nodes over dedicated privatecommunications links located in the same general physical location, suchas a building or campus. WANs, on the other hand, typically connectgeographically dispersed nodes over long-distance communications links,such as common carrier telephone lines, optical lightpaths, synchronousoptical networks (SONET), synchronous digital hierarchy (SDH) links, orPowerline Communications (PLC) such as IEEE 61334, IEEE P1901.2, andothers.

As shown, communication network 105 includes a geographicallydistributed collection of devices or nodes 110/120, interconnected bycommunication links 115 and/or network segments for exchanging data suchas data packets and for transporting data to end nodes or devices 125such as personal computing devices, online game systems, or otherdevices, such as sensors, etc. As shown, device 120 represents amulti-user platform or system. Further, communication links 115represent wired links or shared media links (e.g., wireless links, PLClinks, etc.) where certain devices/nodes, such as, e.g., routers,servers, switches, sensors, computers, etc., may be in communicationwith other nodes, based on distance, signal strength, currentoperational status, location, etc. Those skilled in the art willunderstand that any number of nodes, devices, links, etc. may be used inthe communication network, and that the view shown herein is forsimplicity

Data packets 140 such as network traffic/messages are exchanged betweendevices over and within communication network 105 using predefinednetwork communication protocols such as certain known wired protocols,wireless protocols (e.g., IEEE Std. 802.15.4, WiFi, Bluetooth®, etc.),PLC protocols, or other shared-media protocols where appropriate. Inthis context, a protocol consists of a set of rules defining how thedevices or nodes interact with each other.

Notably, one of end nodes or devices 125 is illustrated as representinga network game system, which includes a game console, peripheraldevices, and display hardware. Operatively, a user of device 125 canplay, spectate, or otherwise access online games and game sessionshosted by multi-user platform 120 over network 105. Likewise, multi-userplatform 120 receives user inputs over network 105 corresponding to itshosted online games or game sessions.

FIG. 2 illustrates a block diagram of an example network device/nodethat represents a multi-user system such as multi-user platform 120 orcomponents thereof. Device 200 includes one or more network interfaces210, a user input interface 215, at least one processor 220, and amemory 240 interconnected by a system bus 250.

Network interface(s) 210 contain the mechanical, electrical, andsignaling circuitry for communicating data over links coupled to one ormore of the networks shown in hybrid cloud environment 100. Networkinterfaces 210 are configured to transmit and/or receive data using avariety of different communication protocols, as will be understood bythose skilled in the art.

User input interface 215 includes graphical user interfaces to solicitand receive user input during live game play for a game session. Forexample, user input interface 215 can include a voting interface and/orinteractive graphical elements that can be manipulated by a user toprovide user input during live game play. Such interactive graphicalelements can include, for example, various buttons, fields such as textfields or text boxes, selectable elements, and the like.

Memory 240 comprises a plurality of storage locations that areaddressable by processor 220 for storing software programs and datastructures associated with the embodiments described herein.

Processor 220 may comprise necessary elements or logic adapted toexecute the software programs and manipulate data structures 245. Anoperating system 242, portions of which are typically resident in memory240 and executed by processor 220, functionally organizes the device by,inter alia, invoking operations in support of software processes and/orservices executing on the device. These software processes and/orservices may comprise an illustrative “spectator channel”process/service 244. Note that while processes/services 244 are shown incentralized memory 240, these processes/services may be configured tooperate in a distributed communication network.

It will be apparent to those skilled in the art that other processor andmemory types, including various computer-readable media, may be used tostore and execute program instructions pertaining to the techniquesdescribed herein. Also, while the description illustrates variousprocesses, it is expressly contemplated that various processes may beembodied as modules configured to operate in accordance with thetechniques herein (e.g., according to the functionality of a similarprocess). Further, while the processes have been shown separately, thoseskilled in the art will appreciate that processes may be routines ormodules within other processes. For example, processor 220 can includeone or more programmable processors, e.g., microprocessors ormicrocontrollers, or fixed-logic processors. In the case of aprogrammable processor, any associated memory, e.g., memory 240, may beany type of tangible processor readable memory, e.g., random access,read-only, etc., that is encoded with or stores instructions that canimplement program modules, e.g., a module having spectator channelprocess 244 encoded thereon. Processor 220 can also include afixed-logic processing device, such as an application specificintegrated circuit (ASIC) or a digital signal processor that isconfigured with firmware comprised of instructions or logic that cancause the processor to perform the functions described herein. Thus,program modules may be encoded in one or more tangible computer readablestorage media for execution, such as with fixed logic or programmablelogic, e.g., software/computer instructions executed by a processor, andany processor may be a programmable processor, programmable digitallogic, e.g., field programmable gate array, or an ASIC that comprisesfixed digital logic, or a combination thereof. In general, any processlogic may be embodied in a processor or computer readable medium that isencoded with instructions for execution by the processor that, whenexecuted by the processor, are operable to cause the processor toperform the functions described herein.

FIG. 3 illustrates a block diagram 300 of a stream integration engine305 employed by a multi-user platform or system. As shown, streamintegration engine 305 monitors multiple media streams associated withgame session 310. Here, the media streams associated with game session310 include stream 1, stream 2, stream 3, and stream 4 and representdisplay content or views of live game play in game session 310. Thedisplay content can, for example, include individual player views (e.g.,first-person perspective views, third-person perspective views, etc.),top-down views, birds-eye views, two-dimensional (2D) views, ¾ views,fixed three-dimensional (3D) views, omni-directional views, god's-eyeviews, and other views showing live game play for game session 310.

Stream integration engine 305 further assigns one or more spectatorattributes 315 to respective media streams, where each spectatorattribute 315 has a corresponding spectator value. Spectator attributes315 include, for example, user votes, viewership, associated players orassociated player attribute, a historical popularity of a view-type orview angle, and the like. As discussed herein, the terms “spectatorattribute” and/or “spectator value” are used synonymously, and generallycorrespond to an interest, popularity, or preference for respectivemedia streams. The spectator value can reflect a current preference orpopularity or it can reflect a trend such as changes or derivatives ofthe current preferences for a given time period. Generally, higher orlarger spectator values represent a stronger preference; however anyvalue system may be used, as is appreciated by those skilled in the art.

In operation, stream integration engine 305 monitors media streams 1-4and continuously updates respective spectator attributes/values 315during live game play in game session 310 based, in part, on currentuser inputs. With respect to user inputs, the multi-user platform and/orstream integration engine 305 provide a user input interface, such asuser input interface 215 (described above), that includes interactivegraphical elements to solicit and receive user input during the livegame play. Examples of user inputs that indicate interest or preferencein a particular media stream include votes, viewership, or otherindications of preference for the media stream. Notably, the “associatedplayer value/attribute” is discussed in greater detail with respect toFIG. 4, below. As discussed below, one or more of these spectatorattributes may be considered independently or in combination with otherspectator attributes—e.g., FIG. 4 considers player attributes/values 415independent of other spectator attributes. Further, certain spectatorvalues/attributes represent a weight that applies to other spectatorvalues/attributes, as is appreciated by those skilled in the art.

Still referring to FIG. 3, stream integration engine 305 comparesindividual or aggregated spectator values for respective media streamsduring live game play and determines a priority ranking for each mediastream in a given time period of live game play. Stream integrationengine 305, as discussed, continuously updates respective spectatorvalues 315 during live game play based on current user inputs andfurther compares or ranks spectator values for corresponding mediastreams to determine user preferences for viewing one media stream overanother media stream. Stream integration engine 305 further designatesone of the media streams to broadcast for a given time period based onits then-current priority rank. The media stream designated for thegiven time period is further broadcast in a spectator channel 320 overthe network. As shown, spectator channel 320 represents an integrationof portions of each designated media stream (for the given time period).Stream integration engine 305 stitches or compiles the portions ofcurrently designated media streams into spectator channel 320.Throughout game session 310, stream integration engine 305 switchesbetween media streams 1-4 based on the priority rank for respectivemedia streams in a given time period. In this fashion, spectator channel320 provides user-preferred media content that shows different views oflive game play during game session 310. Generally, a single media streamis designated to broadcast per given time period. However, it is alsoappreciated more than one media stream may be broadcast per given timeperiod.

FIG. 4 illustrates a block diagram 400 of stream integration engine 305,further showing media streams 1-4 organized and/or prioritized accordingto player attribute(s)/value(s) 415. As discussed above, playerattributes 415 can be considered as part of spectator attributes 315, oras shown here, player attributes may be independently considered. Playerattributes 415, like spectator attributes 315, are associated with arespective media stream and each player attribute 415 has acorresponding player value.

Player attributes 415 include, for example, a number of viewerscurrently watching the player, a number of users following (e.g.,“followers”) the player, a number of points, game event(s), and thelike. As discussed herein, the terms “player attribute” and/or “playervalue” are used synonymously, and generally correspond to an interest,popularity, or preference for media streams associated with a respectiveplayer. Moreover, these terms may represent a particular type ofspectator attribute/value, discussed above. Generally, the player valuecan reflect a current preference or popularity or it can reflect a trendsuch as changes or derivatives of the current preferences for a giventime period. In addition, the player value can reflect a proximity to agame event such as a level change, an opportunity for points, and thelike. Generally, higher or larger player values represent a strongerpreference; however any value system may be used, as is appreciated bythose skilled in the art.

Diagram 400 also shows some media streams associated with more than oneplayer. In these instances, the media streams are further labeled as a“primary” media stream or a “secondary” media stream for the respectiveplayer. Here, stream 1 a primary media stream for player 1 and asecondary media stream for player 2, and stream 2 is a primary mediastream for player 2 and a secondary media stream for player 3.

Primary and secondary attributes or values delineate different views orviewing angles for the same player. For example, media stream 1 for gamesession 310 shows display content for a first person point of viewcorresponding to player 1 and is labeled as a “primary” media stream forplayer 1. Media stream 2 shows display content for a first person pointof view corresponding to player 2 and is labeled as a “primary” mediastream for player 2. During live game play, player 2 enters the firstperson point of view corresponding to player 1 (media stream 1). Whenthis occurs, player 2 is represented by the display content shown bymedia stream 1 as well as the display content shown by media stream 2.But the display content of media stream 1 is focused on player 1 whileplayer 2 is only temporarily shown by media stream 1. Accordingly, sinceplayer 2 is not the focus of media stream 1, media stream 1 is assignedas a “secondary” media stream for player 2 (during the time periodplayer 2 is represented by the display content shown by media stream 1).Alternatively, or in addition to the above, game session 310 may includevarious other views that show different angles for players and may belabeled as primary or secondary media streams, as appropriate. It isalso appreciated that the labels primary and secondary are for purposesof illustration, not limitation. Any type of label, value, and/or weightmay be assigned to media streams to indicate a relationship orassociation with one or more players.

In operation, stream integration engine 305 continuously updates theplayer values in the same fashion it updates spectator values—e.g.,based on user input received during live game play in game session 310.For example, the multi-user system, user input interface(s) and/orstream integration operations discussed above are employed here tosolicit and receive user inputs, update respective playerattributes/values 415 during live game play, compare individual oraggregated player values for respective media streams, determine apriority ranking for each media stream in a given time period of livegame play, and designate one of the media streams to broadcast for thegiven time period based on its then-current priority rank.

In addition to user inputs received during live game play, spectatorintegration engine 305 also updates player values based on data outsideof game session 310. With respect, data outside of live game play, themulti-user system and/or spectator integration engine 305 receivesnon-game specific information regarding a popularity of a player.Examples of this information include information regarding a number of“followers” or “friends” (outside of game play) as well as other datametrics that indicate player popularity. Put differently, a user may bea fan of particular player and can indicate interest in the player byfollowing, friending, or otherwise showing a connection to theparticular player. The user input interface(s) and/or stream integrationengine 305 receives data outside of live game play and assigns anappropriate player value to a corresponding player attribute 415.Generally, higher or larger player values represent more popularity orstronger preference (e.g., a larger number of followers, likes, friends,etc.); however any value system may be used, as is appreciated by thoseskilled in the art.

FIG. 5 illustrates a graph 500 of viewership for one of media streams 1,2, and 3 during live game play in a game session. Here, the viewershipfor media streams 1-3 reflects a number of users accessing or viewingthe media stream at a given time of live game play.

FIG. 6 illustrates a graph 600 of selected portions of the media streamsshown in FIG. 5—namely, media streams 1-3. The selected portions ofmedia streams 1-3 corresponds to respective time periods, T1-T6, themedia stream is selected for broadcast by the spectator channel. Inparticular, graph 600 shows selection of media streams 1-3 based on apriority rank that favors a higher number of viewers in the time period.

In addition, graph 600 also illustrates a threshold value 605, shown asa dash line. Threshold value 605 sets a minimum value for viewership(e.g., 15K viewers), below which value a default stream is assigned asthe spectator stream. Put differently, stream integration engine 305performs the above-discussed operations and further compares thespectator/player values for respective media streams to threshold 605.If the spectator/player values are below threshold 605, streamintegration engine 305 designates a default media stream. Notably, thedefault media stream may include one of media stream 1-3, or it may be adifferent media stream altogether.

As shown, the default media stream is selected to broadcast for timeperiod T0, media stream 2 is selected to broadcast for time periods T1and T3, media stream 1 is to broadcast for time periods T2, T4, and T6,and media stream 3 is des to broadcast for time period T5. In operation,stream engine 305 compiles and integrates portions of the default streamand media streams 1-3, for respective time periods T1-T6, and broadcaststhe portions as spectator channel 320, discussed above.

Although graph 600 illustrates ranking the media streams based on acurrent number of viewers, it is appreciated the priority rankingtechniques may be modified to prioritize the media streams based onchanges in the viewership for a given time period. In this fashion, themedia streams may be ranked according to a trending popularity, wherelarge increases in a short time period correspond to a higher or greatertrend.

FIG. 7 illustrates a graph 700, showing a number of votes received formedia streams 1, 2, or 3 during live game play in a game session. Here,the number of votes for media streams 1-3 reflects a user vote through,for example, a voting interface, and a total number of votes forrespective media streams at a given time of live game play.

FIG. 8 illustrates a graph 800, showing portions of one of media streams1, 2, or 3 designated as the spectator stream based on the number ofvotes in a given time period, T1-T4. Stream integration engine 305performs the above-discussed operations regarding spectator/playervalues and selects portions of media streams 1-3 to broadcast for timeperiods T1-T4 based a priority rank that favors a higher number ofvotes. As discussed above, the priority ranking techniques may bemodified to prioritize the media streams based on changes in votes for agiven time period, rather than an absolute value in the time period, asis appreciated by those skilled in the art.

FIG. 9A illustrates a graph of a spectator channel that broadcastsportions of media streams 1-3 for time periods T1-T4 during livegameplay in a game session. As discussed, stream integration engine 305selects portions of media streams 1-3 to broadcast for a given timeperiod of live game play based on its priority ranking and compiles suchportions of the media streams into a spectator channel, as illustrated

FIG. 9B illustrates a block diagram of a priority ranking used to selectthe portions of the media streams shown in FIG. 9A. Here, streamintegration engine 305 prioritizes streams 1-3 according to a rank of 1,2, or 3 for each time period T1-T4. For each time period, the streamassigned to rank 1 is selected for broadcast by the spectator channel320.

Notably, in some embodiments, spectator integration engine 305 may alsointegrate the selected portions of the media streams into a highlightmedia stream, which can be broadcast by spectator channel 320 over themulti-user platform for subsequent viewing after the game session.

FIG. 10 illustrates a graphical view 1000 of live game play for a gamesession, showing different viewing angles for corresponding mediastreams. In particular, graphical view 1000 shows views 1005, 1010,1015, and 1020, where each view represents display content shown by acorresponding media stream.

FIG. 11 illustrates a graphical view 1100 of the live game play shown inFIG. 10, showing display content for media stream 1. Here, media stream1 is associated with player P3 and provides a third person perspectiveview of player P3. Graphical view 1100 also illustrates interactiveelements that a user can manipulate during live game play. As shown,these interactive elements include a top menu 1105 that provides optionsto change games (“game 2”) and switch channels (“channels”). Graphicalview 1100 also illustrates a voting interface 1120 and a viewershipinterface 1125. Voting interface 1120 displays a current number of votesfor media stream 1 and includes user-selectable elements (arrows) thatcan be selected by a user to vote up/down a media stream—here, mediastream 1. Viewership interface 1125 displays a current number of usersviewing media stream 1 as well as an arrow that indicates a recent trendin viewership for media stream 1. Here, the arrow points down indicatinga downward trend because the current number of viewers recentlydecreased.

FIG. 12 illustrates a graphical view 1200 of the live game play shown inFIG. 11, further showing channel options to set a spectator channel(“spectator broadcast”) to view media streams for a particularplayer—here, Player 3. As shown, the user selects “channels” from thetop menu 1105 to display a sub-menu of options for viewing a spectatorchannel or a manually selected channel. Here, the user selects thespectator channel, which causes display of a further sub-menu of filteroptions. The filter options instruct stream integration engine 305 toprioritize the media streams for a specific player and designate one ofthese media streams as the spectator stream during live game play. Asdiscussed above, more than one media streams can display content for thesame player (e.g., different views, etc.). Here, the user selects afilter option corresponding to Player 3, which instructs streamintegration engine 305 to select and designate one of the media streamsassociated with Player 3 as the spectator stream for a given timeperiod. As discussed, stream integration engine 305 continuously updatescurrent spectator values/spectator attributes for the media streamsassociated with Player 3, compares these spectator values, determines apriority ranking for each media stream associated with Player 3 (e.g.,based on then-current respective spectator values), and designates oneof the media streams as the broadcast stream. Stream integration engine305 further compiles or integrates portions of the media streams (e.g.,the portions corresponding to the time period the media stream isdesignated as the spectator stream) into a spectator channel andbroadcasts the spectator channel during live game play. Here, graphicalview 1200 shows a spectator channel that prioritizes rank and selectionof the media streams associated with to Player 3.

FIG. 13 illustrates a graphical view 1300 of the live game play shown inFIG. 11, further showing channel options to set the spectator channel toview trending media streams. As illustrated, the sub-menu for thespectator channel provides filter options to instruct stream integrationengine 305 to prioritize and select media streams for broadcast based ona number of votes, a number of followers, trending (e.g., changes invotes, followers, points, or combinations thereof), and a number ofpoints. The user selects the filter option corresponding to “trending”,which instructs stream integration engine 305 to select and broadcast amedia stream based on changes to spectator attributes (or playerattributes) for a recent time period. Notably, this trending filteroption can reflect individual or combinations of changes inspectator/player values.

FIG. 14 illustrates a graphical view 1400 of the live game play shown inFIG. 11, further display content for a different media stream—namely,stream 2. For graphical view 1400, the current spectator channel set to“broadcast” and a player filter set to player 3. The display contentshown by media stream 2 represents primary display content for player 4(P4) and secondary display content for players 1 (P1), 2 (P2), and 3(P3). In particular, media stream 2 displays a third person perspectiveview centered on player 4, and an offset third person perspective viewof other players. As discussed above, primary and secondary labelsand/or values are be used to delineate different views or viewing anglesfor an associated player(s), which may change during the course of livegame play.

In operation, comparing FIG. 11 and FIG. 14, stream integration engine305 switched the designated broadcast stream from media stream 1 (FIG.11) to media stream 2 on the spectator channel because of a game eventhighlighted by notification 1405 (view change to stream 2: “P4 is aboutto pass P3”). As discussed above, stream integration engine 305continuously updates spectator/player values for correspondingvalues/attributes during live game play. As illustrated by the change inview from FIG. 11 to the view in FIG. 14, stream integration engine 305updated the game event value/attribute. Here, the game event representsa change in proximity or nearness in virtual game space between player 4and player 3 for a given time period. During live game play, the changein proximity for the given time period represents player 4 passingplayer 3. As player 4 approaches player 3, stream integration engine 305updates and increases the game event value associated with media stream2. This increase for the game event value changes the priority rankingof the corresponding media stream (stream 2) for the given time periodsuch that stream integration engine 305 selects media stream 2 tobroadcast over the spectator channel. Depending on subsequent actions bythe players, stream integration engine 305 may decrease the game eventvalue and subsequently select a different media stream to broadcastbased on an updated priority ranking for the media streams. In addition,stream integration engine may provide notifications such as notification1405 to inform users viewing the spectator broadcast channel aboutchanges to the currently displayed stream. The notifications can betriggered and provided in advance of or subsequent to such changes.

Collectively, FIGS. 10-14 show media content and perspective view ofmedia streams, graphical interfaces, filter options, and other live gameplay information. These views are provided for purposes of illustrationand discussion, not limitation. Further, while certain interfaces andgraphical elements are displayed in a particular orientation and havinga particular shape, these interfaces and graphical elements may berepresented by any number of shapes, sizes, orientations, and the like,as is appreciated by those skilled in the art.

FIG. 15 illustrates an example simplified procedure 1500 for integratingmedia streams of live game play in a game session into a spectatorchannel, particularly from the view of a multi-user system or platform.Procedure 1500 begins at step 1505 and continues to step 1510, where, asdescribed in greater detail above a multi-user system hosts an onlinegame session that includes a plurality of media streams, and each mediastream may show a particular view of live game play. Next, at step 1515,the multi-user system assigns a spectator value to each media stream. Asdiscussed above, the spectator value and/or spectator attribute may alsoinclude player values/attributes and generally represent a popularity oruser interest in the respective media stream. The multi-user systemfurther updates, at step 1520, the spectator values for respective mediastreams based on user input(s) received during the game session. Themulti-user system monitors, at step 1525, respective spectator valuesfor corresponding media streams during the game session to determine apriority ranking for each media stream. As discussed, the priorityranking can include weights and/or values assigned to the media streamswhich favor a greater popularity or interest in a media stream. Notably,the priority ranking is typically updated throughout the game sessionbased on the live user inputs received to represent current interest inany given media stream.

Procedure 1500 continues to step 1530, where the multi-user systemfurther selects one of the media streams to broadcast for a time periodof the game session based on its priority ranking and, at step 1535, themulti-user system integrates each selected media stream into a spectatorchannel that is broadcast, at step 1540, over the communication network.Procedure 1500 subsequently ends at step 1540, but may continue on tostep 1510 where the multi-user system hosts an online game session.Collectively, the steps in procedure 1500 describe techniques to improvea consumer's viewing experience for live online game play through aspectator channel that integrates and/or switches between viewscorresponding to multi-media streams based on live, dynamic user inputor feedback received during game play.

It should be noted that certain steps within procedures 1500 may beoptional, and further, the steps shown in FIG. 15 are merely examplesfor illustration. Certain other steps may be included or excluded asdesired. Further, while a particular order of the steps is shown andexecuted from the perspective of a particular device or system, thisordering is merely illustrative, and any suitable arrangement of thesteps and/or any number of systems, platforms, or devices may beutilized without departing from the scope of the embodiments herein.

The techniques described herein, therefore, provide interactive andimmersive viewing experiences that compiles and/or integrates mediastreams associated with live game play in a game session into abroadcast channel that tracks a currently “most-popular” view shown by agiven media stream based on user feedback received during the gamesession. This popularity or user interest can include numerous factorsor attributes and may also include changes in a time period to reflecttrending aspects for media streams (e.g., sudden increases or decreasesin viewership).

While there have been shown and described illustrative embodiments thatmonitor media streams for a game session and provide an integratedspectator broadcast channel comprising portions of currently popularmedia streams, it is to be understood that various other adaptations andmodifications may be made within the spirit and scope of the embodimentsherein. For example, the embodiments have been shown and describedherein with relation to certain systems, platforms, devices, and modules(e.g., engines, etc.). However, the embodiments in their broader senseare not as limited, and may, in fact, any of these systems, platforms,devices and/or modules may be configured (or exclude) with similar orthe same functionality.

The foregoing description has been directed to specific embodiments. Itwill be apparent, however, that other variations and modifications maybe made to the described embodiments, with the attainment of some or allof their advantages. For instance, it is expressly contemplated that thecomponents and/or elements described herein can be implemented assoftware being stored on a tangible (non-transitory) computer-readablemedium, devices, and memories (e.g., disks/CDs/RAM/EEPROM/etc.) havingprogram instructions executing on a computer, hardware, firmware, or acombination thereof. Further, methods describing the various functionsand techniques described herein can be implemented usingcomputer-executable instructions that are stored or otherwise availablefrom computer readable media. Such instructions can comprise, forexample, instructions and data which cause or otherwise configure ageneral purpose computer, special purpose computer, or special purposeprocessing device to perform a certain function or group of functions.Portions of computer resources used can be accessible over a network.The computer executable instructions may be, for example, binaries,intermediate format instructions such as assembly language, firmware, orsource code. Examples of computer-readable media that may be used tostore instructions, information used, and/or information created duringmethods according to described examples include magnetic or opticaldisks, flash memory, USB devices provided with non-volatile memory,networked storage devices, and so on. In addition, devices implementingmethods according to these disclosures can comprise hardware, firmwareand/or software, and can take any of a variety of form factors. Typicalexamples of such form factors include laptops, smart phones, small formfactor personal computers, personal digital assistants, and so on.Functionality described herein also can be embodied in peripherals oradd-in cards. Such functionality can also be implemented on a circuitboard among different chips or different processes executing in a singledevice, by way of further example. Instructions, media for conveyingsuch instructions, computing resources for executing them, and otherstructures for supporting such computing resources are means forproviding the functions described in these disclosures. Accordingly thisdescription is to be taken only by way of example and not to otherwiselimit the scope of the embodiments herein. Therefore, it is the objectof the appended claims to cover all such variations and modifications ascome within the true spirit and scope of the embodiments herein.

The invention claimed is:
 1. A method, comprising: providing amulti-user platform for hosting a game session over a communicationnetwork, the game session including a plurality of media streams thatshow one or more views of live game play for the game session; assigningeach media stream as one of a primary media stream showing a first viewof a player or a secondary media stream showing a second view of theplayer; assigning a spectator value to each media stream for one or moretime periods of the live game play, wherein the spectator value includesa weight that favors the primary media stream showing the first view ofthe player; updating one or more spectator values for the plurality ofmedia streams based on user inputs received during the live game play;selecting one media stream to broadcast over a spectator channel foreach time period based on the spectator values assigned to the pluralityof media streams for the time period of the live game play; andbroadcasting the spectator channel over the communication network. 2.The method of claim 1, wherein the one media stream selected tobroadcast over the spectator channel is a selected media stream, themethod further comprising: integrating the selected media stream foreach of the one or more time periods of the game session into thespectator channel, and wherein broadcasting the spectator channelfurther comprises broadcasting the selected media stream for each of theone or more time periods over the communication network.
 3. The methodof claim 1, further comprising: providing a voting interface for themulti-user platform to receive the user inputs during the live gameplay.
 4. The method of claim 1, further comprising: monitoring a changein spectator values assigned to each media stream for the one or moretime periods of the live game play, and wherein selecting the one mediastream to broadcast further comprises selecting the one media stream tobroadcast based on the change in the spectator value for one of the oneor more time periods.
 5. The method of claim 1, further comprising:comparing the spectator value to a threshold value, and whereinselecting the one media stream to broadcast further comprises, selectingthe one media stream to broadcast when the spectator value assigned tothe one media stream meets or exceeds the threshold value.
 6. The methodof claim 5, wherein selecting the one media stream to broadcast furthercomprises, selecting a default media stream to broadcast when thespectator value assigned to the one media stream is less than thethreshold value.
 7. The method of claim 1, further comprising: providinga notification that indicates a change between media streams selectedfor broadcast over the spectator channel.
 8. The method of claim 1,further comprising: associating one or more of the plurality of mediastreams with a player participating in the game session, and wherein,the spectator value for each media stream associated with the playerincludes at least one of a number of users that follow the player, achange in the number of users that follow the player, a number of pointsawarded to the player, a change in the number of points awarded to theplayer, a proximity between the player and potential point awards, or agame event.
 9. The method of claim 1, wherein the spectator value forone or more media streams includes at least one of a number of usersaccessing the one or more media streams, a change in the number of usersaccessing the one or more media streams, a number of users that follow aplayer associated with the one or more media streams, a change in thenumber of users that follow the player, a number of points awarded tothe player, a change in the number of points awarded to the player, aproximity between the player and potential point awards, or a gameevent.
 10. A multi-user system, comprising: a network interface tocommunicate in a communication network; a processor coupled to thenetwork interface and adapted to execute one or more processes; and amemory configured to store a process executable by the processor, theprocess when executed operable to: host a game session over thecommunication network, the game session including a plurality of mediastreams that show one or more views of live game play for the gamesession; assign each media stream as one of a primary media streamshowing a first view of a player or a secondary media stream showing asecond view of the player; assign a spectator value to each media streamfor one or more time periods of the live game play, wherein thespectator value includes a weight that favors the primary media streamshowing the first view of the player; update one or more spectatorvalues for the plurality of media streams based on user inputs receivedduring the live game play; select one media stream to broadcast over aspectator channel for each time period based on the spectator valuesassigned to the plurality of media streams for the time period of thelive game play; and broadcast the spectator channel over thecommunication network.
 11. The multi-user system of claim 10, whereinthe one media stream selected to broadcast over the spectator channel isa selected media stream, wherein the process, when executed, is furtheroperable to: integrate the selected media stream for each of the one ormore time periods of the game session into the spectator channel, andwherein the process, when executed to broadcast the spectator channel isfurther operable to broadcast the selected media stream for each of theone or more time periods over the communication network.
 12. Themulti-user system of claim 10, wherein the network interface includes avoting interface, wherein the process, when executed, is furtheroperable to: receive user votes by the voting interface.
 13. Themulti-user system of claim 10, wherein the process, when executed, isfurther operable to: monitor a change in spectator values assigned toeach media stream for the one or more time periods of the live gameplay, and wherein the process, when executed to select the one mediastream, is further operable to select the one media stream to broadcastbased on the change in the spectator value for one of the one or moretime periods.
 14. The multi-user system of claim 10, wherein theprocess, when executed, is further operable to: compare the spectatorvalue to a threshold value, and wherein the process, when executed toselect the one media stream, is further operable to select the one mediastream to broadcast when the spectator value assigned to the one mediastream meets or exceeds the threshold value.
 15. The multi-user systemof claim 14, wherein the process, when executed to select the one mediastream, is further operable to select a default media stream tobroadcast when the spectator value assigned to the one media stream isless than the threshold value.
 16. The multi-user system of claim 10,wherein the process, when executed, is further operable to: provide anotification over the network that indicates a change between mediastreams selected for broadcast over the spectator channel.
 17. Atangible, non-transitory, computer-readable media having softwareencoded thereon, the software, when executed by a processor, is operableto: host a game session over a communication network, the game sessionincluding a plurality of media streams that show one or more views oflive game play for the game session; assign each media stream as one ofa primary media stream showing a first view of a player or a secondarymedia stream showing a second view of the player; assign a spectatorvalue to each media stream for one or more time periods of the live gameplay, wherein the spectator value includes a weight that favors theprimary media stream showing the first view of the player; update one ormore spectator values for the plurality of media streams based on userinputs received during the live game play; select one media stream tobroadcast over a spectator channel for each time period based on thespectator values assigned to the plurality of media streams for the timeperiod of the live game play; and broadcast the spectator channel overthe communication network.
 18. The tangible, non-transitory,computer-readable media of claim 17, wherein the one media streamselected to broadcast over the spectator channel is a selected mediastream, wherein the software, when executed by the processor, is furtheroperable to: integrate the selected media stream for each of the one ormore time periods of the game session into the spectator channel, andwherein the software, when executed by the processor to broadcast thespectator channel is further operable to broadcast the selected mediastream for each of the one or more time periods over the communicationnetwork.
 19. The tangible, non-transitory, computer-readable media ofclaim 17, wherein the software, when executed by the processor, isfurther operable to: monitor a change in spectator values assigned toeach media stream for the one or more time periods of the live gameplay, and wherein the software, when executed by the processor to selectthe one media stream to broadcast is further operable to select the onemedia stream to broadcast based on the change in the spectator value forone of the one or more time periods.